using Engine;

// struct TestField<T>
// {
//     public T Field;
// }

// struct TestFunA
// {
//     TestFunA()
//     {
//         RConsole.PrintLine("Construct TestFunA");
//     }

//     void Fun()
//     {
//         RConsole.PrintLine("FunA");
//     }
// }

// struct TestFunB
// {
//     void Fun()
//     {
//         RConsole.PrintLine("FunB");
//     }
// }

// struct TestFun<T>
// {
//     public void Fun()
//     {
//         T a = new T();
//         a.Fun();
//     }
// }


// struct Nested<T>
// {
//     public T c;
// }

// struct TestNested<T1,T2>
// {
//     public T1 a;
//     public Nested<T2> b;
// }

struct TestNative<T>
{
    public TNativeVector<T> a;
}

namespace ConsoleApplication1
{

    class Program 
    {
        static void Test()
        {
            // TestNested<int, float> p = new TestNested<int, float>();
            // p.b=new Nested<float>();
            // p.b.c=34.5;
            // RConsole.PrintLine(p.b.c.ToString());

            // TestField<int> t = new TestField<int>();
            // t.Field = 5;
            // RConsole.PrintLine(t.Field.ToString());

            // TestFun<TestFunA> TestFuna = new TestFun<TestFunA>();
            // TestFuna.Fun();

            TestNative<int> TestNativeV = new TestNative<int>();
            TestNativeV.a = new TNativeVector<int>();
            TestNativeV.a.Add(51);
            RConsole.PrintLine(TestNativeV.a[0].ToString());

            TNativeVector<int> NativeVectora= new TNativeVector<int>();
            NativeVectora.Add(58);
            RConsole.PrintLine(NativeVectora[0].ToString());
        }

    }
}